package com.hsnn.medstgmini.base.dict.service;

import java.io.OutputStream;
import java.util.List;
import java.util.Map;

import com.hsnn.medstgmini.base.dict.model.DicSys;
import com.hsnn.medstgmini.base.dict.model.DicSysDicLog;
import com.hsnn.medstgmini.util.Pagination;

public interface DicSysManager {
	
	/**
	 * @category 自定义字典
	 * @param page
	 * @param dicSys
	 * @return 自定义字典列表
	 */
	Pagination getDicSysList(Pagination page);
	
	/**
	 * @category 启用|停用
	 * @param dicSys
	 * @return
	 */
	void changeStatus(DicSys dicSys);
	
	/**
	 * @category 批量(启用|停用)
	 * @param array
	 * @return
	 */
	int batchChangeStatus(List<DicSys> list);
	
	/**
	 * @category 根据id查询自定义字典
	 * @param id
	 * @return
	 */
	DicSys getDicSysById(String id);
	
	/**
	 * @category 保存分类
	 * @param dicSys
	 * @return
	 */
	/*void saveOrUpdateDicSys(DicSys dicSys);*/
	/**
	 * @category 查询自定义字典维护记录列表
	 * @param page
	 * @param dicSysDicLog
	 * @return
	 */
	List<DicSysDicLog> getDicSysDicLogList(Pagination page, DicSysDicLog dicSysDicLog);
	
	List<DicSys> getDicSysByClassName();
	
	List<DicSys> getAll();
	/**
	 * @category 根据分类编码查询自定义字典
	 * @param classifyCode
	 * @return
	 */
	List<DicSys> getDicSysByClassifyCode(String classifyCode);
	
	///////////////////////////////////////////////////////////////////////
	
	/**
	 * 基础库 系统字典  维护日志
	 * @param result
	 * @return
	 */
	Pagination getSysDicLogList(Pagination page);
	
	/**
	 * 基础库 系统在字典  日志详情
	 * @param result
	 * @return
	 */
	List<Map<String,Object>> getDicSysDicLogListDetail(Pagination page);
	
	/**
	 * 自定义字典  新增和编辑
	 * @param dicSys
	 */
	void addAndEdit(Pagination page);
	
	public void exportExcel(Pagination page,OutputStream os);
	
	
	/**
	 * 根据code或name查看有无重复数据
	 * @param code,name
	 * @return
	 */
	List<DicSys> getDicSysBy(String key, String value,String id);
	/**
	 * @category 根据条件查询系统字典
	 * @author zhouqi
	 * @date 2015年9月25日14:52:51
	 * @param conditions
	 * @return
	 */
	List<DicSys> getSysDicByCondition(Map<String, String> conditions);
	
}
